<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>06函数</title>
</head>
<body>
<script>
    //1.JS通过function关键字来定义函数
    function f1(){
        console.log('今天星期五~');
    }
    f1();//调用函数
    f1();
    f1();
    function f2(n){//函数形参不需要写类型,指定一个形参名即可
        console.log('今天星期五~'+n);
    }
    f2(333);
    f2(334);
    f2(335);

    function f3(a,b){
        console.log(a+b);
    }
    f3(1,2);
    //形参个数>实参个数,未被赋值的形参值为undefined
    f3(1);//1+undefined=NaN(Not a Number)
    //形参个数<实参个数,多余的实参会被忽略
    f3(2,2,3);//2+2=4

    //arguments用来保存调用函数时传入的实参,可以看到实参的个数和值
    function f4(){
        console.log(arguments);
    }
    f4(50);//Arguments[50, ...]
    f4(50,60);//Arguments(2)[50,60, ...]
    f4(50,60,70);//Arguments(3)[50,60,70, ...]

    //使用return关键字返回方法的结果
    function f5(a,b){
        return a+b;
    }
    console.log(f5(1,2));//直接打印return的结果
    let res = f5(2,2);//将打印结果保存在res变量里并打印
    console.log(res);

    //第三种:箭头函数


    //第四种
    //new Function(参数1,参数2,...,方法体)
    //最后一个参数是字符串类型的方法体
    let f8 = new Function('name','age',"console.log('方法体'+name);return age;")
    console.log(f8('小明',18));
</script>


</body>
</html>